chore(dev): retire the unused Docker dev environment#25429
Conversation
Strips the `make environment` / `ENVIRONMENT=true` Docker/Podman dev
shell wiring: ENVIRONMENT_* variables, MAYBE_ENVIRONMENT_EXEC /
MAYBE_ENVIRONMENT_COPY_ARTIFACTS macros, ENVIRONMENT_EXEC /
ENVIRONMENT_PREPARE blocks, the `environment`, `environment-prepare`,
`environment-clean`, `environment-push` targets, and the
${MAYBE_ENVIRONMENT_EXEC} prefix on every build/test/bench/check recipe.
Also drops the dead `build-graphql-schema` target: no `graphql-schema`
binary exists in the workspace.
The VDEV macro uses `?=` so a caller-supplied VDEV (e.g. the pinned
prebuilt binary path exported by .github/actions/setup) wins over the
local `cargo vdev` default, avoiding a vdev source recompile per recipe.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removes .github/workflows/environment.yml (the weekly cron and workflow_dispatch that built and pushed timberio/vector-dev:latest to Docker Hub) and the /ci-run-environment review-trigger wiring in ci-review-trigger.yml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removes the "Using a Docker or Podman environment" walkthrough and the remaining `ENVIRONMENT=true` / `make environment-generate` / `build-dev` mentions from docs/DEVELOPING.md, matching the Makefile cleanup. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
afb70d0 to
b055edb
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b055edb37d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
b055edb to
485dce5
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 485dce5793
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
041a507 to
0983a3f
Compare
…ootstrap Deletes scripts/environment/Dockerfile and scripts/environment/entrypoint.sh, which only existed to build the timberio/vector-dev:latest image used by `make environment` and the Environment Suite workflow (both removed in this PR). Also deletes scripts/environment/bootstrap-ubuntu-24.04.sh. Its callers in .github/workflows/publish.yml and vdev_publish.yml were removed in d1524c4 (Apr 2026), leaving only the deleted Dockerfile as a caller; with that gone the script has no live consumers in the tree. The remaining environment scripts (`prepare.sh`, `binstall.sh`, `install-protoc.sh`, the macOS/Windows bootstraps) stay; they are still consumed by CI, cross/e2e/regression/tilt Dockerfiles, and the install docs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Docker/Podman dev environment this RFC proposed is no longer maintained; this PR removes the last of its wiring. Marks the RFC as archived and points readers to CONTRIBUTING.md and docs/DEVELOPING.md for current instructions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a tooling-shortcut note in docs/DEVELOPING.md showing `bash scripts/environment/prepare.sh` as the one-shot way to install the Rust and npm tooling that the bullet list otherwise enumerates manually. Same script CI uses, so what contributors get locally matches what CI installs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
scripts/environment/setup-helm.sh has had no consumers in the tree since 2022, when nightly.yml / release.yml / CODEOWNERS stopped referencing it. Only the now-deleted scripts/environment/Dockerfile kept it alive. Its pins (kubectl v1.18.6, helm v3.2.4, kubeval) are ~5 years old; current Vector k8s e2e drives a separate minikube setup via scripts/test-e2e-kubernetes.sh. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
prepare.sh is primarily a CI bootstrap, but docs/DEVELOPING.md now points contributors at it as the one-shot install. This adds three CI-gated guards so running the script on a personal laptop is less surprising. Each guard preserves the existing CI behavior; the differences only apply when `CI` is unset. 1. `git config --global --add safe.directory "$(pwd)"` is skipped outside CI. Contributors own their checkouts and do not hit git's dubious-ownership error, so the global config write is avoided. 2. The version-pin check no longer downgrades cargo tools the user has already installed at a newer version. CI starts from nothing and keeps installing the exact pin; on workstations, a newer-than-pin version is kept and the script prints a notice. `CI=1` forces the pin if a contributor wants it. 3. The npm tool symlinks into the global npm bin dir are skipped outside CI. Avoids `sudo ln -sf` into /usr/local/bin (or equivalent) without the user opting in. To keep the make-driven workflow working without any contributor PATH edits, the Makefile prepends scripts/environment/npm-tools/node_modules/.bin to PATH so vdev's bare-name spawns of `markdownlint-cli2` and `prettier` resolve from the project-local install. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9f340dc to
ef19f77
Compare
Summary
The
make environment/ENVIRONMENT=trueDocker/Podman dev shell, and thetimberio/vector-dev:latestimage it ran in, are no longer in active use. The image rebuilds on a weekly cron with no consumers, the Makefile threads a${MAYBE_ENVIRONMENT_EXEC}wrapper through every build/test/bench/check recipe, and contributors have long since moved to native toolchains. This PR retires that path end-to-end and replaces the entry point with a contributor-friendlyprepare.shshortcut, hardened so it no longer surprises someone running it on a laptop. Continues the cleanup from #25410 and #25411.What changes
ENVIRONMENT_*variables,MAYBE_ENVIRONMENT_*macros,ENVIRONMENT_EXEC/ENVIRONMENT_PREPAREdefinitions, the fourenvironment*targets, the${MAYBE_ENVIRONMENT_EXEC}recipe prefix, and the "(SupportsENVIRONMENT=true)" section subtitles. Switches theVDEVmacro to?=so a caller-suppliedVDEV(e.g. the pinned binary path exported by.github/actions/setup) wins over the localcargo vdevcargo-alias default.build-graphql-schema; nographql-schemabinary exists in the workspace..github/workflows/environment.yml(the weekly cron that built and pushedtimberio/vector-dev:latest) and removes the/ci-run-environmentreview trigger andenvironmentjob fromci-review-trigger.yml.docs/DEVELOPING.mdand adds a pointer toscripts/environment/prepare.shas the one-shot tooling install.scripts/environment/Dockerfile,entrypoint.sh, andsetup-helm.sh(orphaned since 2022, pinned ~5-year-old kubectl/helm). The remaining scripts (bootstraps,binstall.sh,prepare.sh,install-protoc.sh) stay; they are still consumed by CI, cross/e2e/regression/tilt Dockerfiles, and the install docs.rfcs/2020-05-25-2685-dev-workflow-simplification.mdas archived and points readers atCONTRIBUTING.md/docs/DEVELOPING.md.prepare.shworkstation safety (folded in from enhancement(dev): make prepare.sh safer on workstations #25430): three CI-gated guards so the script no longer surprises a contributor on a laptop. (1) Skip the globalsafe.directorygit config write outside CI; contributors own their checkouts. (2) Refuse to downgrade cargo tools the user has installed at a newer version than the pin (CI starts from nothing and still gets the pin; settingCI=1forces it locally). (3) Skip thesudo ln -sfinto the global npm bin outside CI; print a PATH hint pointing at the project-localnode_modules/.bininstead.How did you test this PR?
make helprenders cleanly with no stale targets.make -n test,make -n check,make -n benchresolve to barecargo/$(VDEV)commands.env VDEV=/tmp/vdev make -n checkprints/tmp/vdev check rust, confirming caller-suppliedVDEVwins.make check-markdownpasses.bash -n scripts/environment/prepare.shandshellcheckare clean.ENVIRONMENT=true,make environment,MAYBE_ENVIRONMENT_EXEC,INSIDE_ENVIRONMENT,timberio/vector-dev,scripts/environment/Dockerfile,scripts/environment/entrypoint, andsetup-helmreturns only the archived RFC.Change Type
Is this a breaking change?
Does this PR include user facing changes?
no-changeloglabel to this PR.References